package 设计模式.创建型.工厂模式.简单工厂模式.进一步重构三;

import 设计模式.创建型.工厂模式.简单工厂模式.IRuleConfigParser;
import 设计模式.创建型.工厂模式.简单工厂模式.JsonRuleConfigParser;
import 设计模式.创建型.工厂模式.简单工厂模式.PropertiesRuleConfigParser;
import 设计模式.创建型.工厂模式.简单工厂模式.XmlRuleConfigParser;
import 设计模式.创建型.工厂模式.简单工厂模式.YamlRuleConfigParser;

/**
 * 这里出现了很多 if 判断，应该可以进一步通过多态来进行替换
 */
public class RuleConfigParserFactory {

    public static IRuleConfigParser createParser(String configFormat) {
        IRuleConfigParser parser = null;
        if ("json".equalsIgnoreCase(configFormat)) {
            parser = new JsonRuleConfigParser();
        } else if ("xml".equalsIgnoreCase(configFormat)) {
            parser = new XmlRuleConfigParser();
        } else if ("yaml".equalsIgnoreCase(configFormat)) {
            parser = new YamlRuleConfigParser();
        } else if ("properties".equalsIgnoreCase(configFormat)) {
            parser = new PropertiesRuleConfigParser();
        }
        return parser;
    }
}